#include "process.h"
#include <unistd.h>
#include <time.h>
#include <stdlib.h>

//函数指针类型
typedef void (*call_t)(double,double);

double total = 1024.0;
double speed[] = {1.0, 2.5 , 5.2 , 1.3 , 10.9};
//double speed = 1.0;

//回调函数
void download(int total,call_t cb)
{
    srand(time(NULL));
    double current = 0.0;
    while(current <= total)
    {
        cb(total,current); //进行回调
        if(current >= total)break;
        
         //下载代码
        int random = rand()%5;
         usleep(5000);
        current += speed[random];        
        if(current >= total) current = total;

         //current+=speed;
         
   }
}



int main()
{
    download(1024.0,FlushProcess);
    printf("download 1024.0MB done\n");
    download(512.0,FlushProcess);
    printf("download 512.0MB done\n");
    download(256.0,FlushProcess);
    printf("download 256.0MB done\n");
    download(128.0,FlushProcess);
    printf("download 128.0MB done\n");
    download(64.0,FlushProcess);

    return 0;
}

